home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
A-Monthly Disks
/
(c)aaq.d64
/
1000 miles
(
.txt
)
next >
Wrap
Commodore BASIC
|
2007-02-04
|
10KB
|
302 lines
100 REM F. COVITZ,IMPROVED BY TIM BOGEN
105 PRINTCHR$(142):POKE52,56:POKE56,56:CLR
110 POKE53280,15:POKE53281,15:POKE53272,21:PRINT"[147][152]":DEFFNA(L)=2^(L-1):E=106:I=RND(-TI)
120 PRINT"[151]":DIMS(7),C%(E),T$(4,5),PL(1,3),H(1,7),T1%(4),T2%(4,5),TB(1)
125 DIMA6%(15),A7%(15),BO(1),CC%(2,5),A8%(8)
128 PRINT"SETTING UP . . ."
130 DATA"OUT OF GAS","FLAT TIRE",ACCIDENT,"SPEED LIMIT(50)",STOP
140 DATAGAS,"SPARE TIRE",REPAIRS,"END SPEED LIMIT",ROLL,"EXTRA TANK"
150 DATA"NO PUNCTURE","DRIVING ACE",R,"RIGHT-OF-WAY",200,100,75,50,25
160 FORI=1TO4:FORJ=1TO5:READT$(I,J):NEXTJ,I
170 DATA18,56,60,106,4,7,10,14,19,25,31,37,43,57,58,59,60,60,61,65,77,87,97,107
180 B$=" "
190 FORI=1TO4:READT1%(I):NEXTI:FORI=1TO4:FORJ=1TO5:READT2%(I,J):NEXTJ,I
200 G=0:FORI=1TOE:C%(I)=I:NEXTI:S(0)=0:S(1)=0:GOSUB5000
210 PRINT"[150]SHUFFLING...[151]":GOSUB720:GOSUB800
216 BO(0)=0:BO(1)=0
220 FORI=0TO1:FORJ=0TO3:PL(I,J)=0:NEXTJ:TB(I)=9:NEXTI
230 FORI=0TO1:FORJ=1TO6:CN=CN+1:H(I,J)=C%(CN):NEXTJ,I
240 PRINT"":FORA=1TO6:C=H(1,A):GOSUB760:PRINTTAB(3);N$:NEXTA
250 P=1:CN=CN+1:IFCN>ETHENS=S+1:IFS>6THENN$="NOBODY":GOTO1680
260 IFS>0THEN300
270 C=C%(CN):H(1,0)=C:GOSUB760:PRINT"";
280 PRINTTAB(3)LEFT$(B$,13)
290 PRINT"[145]";TAB(3);N$
300 PRINT"YOUR MOVE[151][146]"LEFT$(B$,30)
310 IF(PL(0,3)AND8)ANDPL(0,2)>-1THENPL(0,2)=5:J=22:GOSUB2020:PRINTTAB(9);"ROLL "
320 PRINT" PLAY(P) [151]OR [149]DISCARD(D) [151]WHICH CARD? [157][157]";
330 GETN$:IFN$>""GOTO330
340 GETN$:IFN$<>"D"ANDN$<>"P"ANDN$<>" "THENGOSUB2040:GOTO340
350 PRINTN$;:IFN$=" "THENN$="D":N=S:PRINT"[157]D"MID$(STR$(S+1),2):GOTO410
360 GETQ$:IFQ$=CHR$(20)GOTO320
370 N=VAL(Q$)-1:IFN>6ORN<STHENGOSUB2040:GOTO360
380 PRINTQ$;
390 GETQ$:IFQ$=""THENGOSUB2040:GOTO390
400 IFQ$<>CHR$(13)THENPRINT"[157] [157]";:GOTO360
410 PRINT:IFN$="D"THENGOSUB900:GOSUB880:GOTO440
420 GOSUB860
430 IFCH=0THENINPUT",OK Y[157][157][157]";N$:GOTO300
440 PRINT"":FORA=0TO3+S:PRINT"";:NEXTA:PRINTTAB(3)LEFT$(B$,18)
450 IFPL(1,0)=1000THENN$="YOU":GOTO1680
460 D$="PLAY[151]"
470 PRINT"":FORI=1TO39:PRINT" ";:NEXTI
480 PRINT"[129]THINKING.....[151]":P=0:CN=CN+1
490 IF(PL(1,3)AND8)ANDPL(1,2)>-1THENPL(1,2)=5:J=16:GOSUB2020:PRINTTAB(9);"ROLL "
500 IFS=0THENH(0,0)=C%(CN)
510 HZ=PL(0,2):IFHZ>-1ANDPL(0,1)>-1THEN580
520 GOSUB1430:IFCFTHENPL(0,3)=PL(0,3)+FNA(M):PL(0,CF)=M:S(2)=S(2)+300
530 IFCFTHENS(4)=S(4)+100:GOTO700
540 IFSORPL(1,0)>790ORPL(0,0)>790THENGOSUB1630:IFSFTHEN700
550 GOSUB1390:IFCHTHENPL(0,CH)=M:GOTO700
560 IFPL(0,2)>-1THEN580
570 GOTO660
580 IFPL(0,2)<5THEN650
590 LM=201:IFPL(0,1)<0THENLM=51
600 IFLM<200ANDPL(0,0)<900THENGOSUB1370:IFCHTHENPL(0,1)=4:GOTO700
610 CH=0:D=0:FORA=STO6:C=H(0,A):GOSUB760:B=VAL(N$)
620 IFB<LMAND(B+PL(0,0)<1001)ANDB>DTHEND=B:N=A:CH=1
630 NEXTA:IFCHTHENPL(0,0)=PL(0,0)+D:GOTO700
640 GOTO660
650 GOSUB1480:IFCHAND(PL(0,2)>-1)THENPL(0,2)=5:GOTO700
660 IFPL(1,2)<0ANDPL(1,1)<0THEN690
670 GOSUB1300:IFCH=1ANDPL(1,0)<950THENPL(1,1)=-4:GOTO700
680 IFCH=2ANDPL(1,2)=5THENPL(1,2)=-M:GOTO700
690 GOSUB1500
700 GOSUB1740:IFPL(0,0)=1000THENN$="I":GOTO1680
710 GOSUB2030:GOTO250
720 CN=0:EN=E+1:S=0
730 FORI=2TO5:S(I)=0:NEXTI
740 FORI=1TOE:R%=I+(EN-I)*RND(TI):T=C%(I):C%(I)=C%(R%):C%(R%)=T:REM
750 NEXTI:RETURN
760 FORI=1TO4:FORJ=1TO5
770 IFC>T1%(I)THENJ=5:GOTO790
780 IFC<T2%(I,J)THENN$=T$(I,J):K=I:L=J:I=4:J=5
790 NEXTJ,I:RETURN
800 PRINT"[147] YOUR HAND [146]";SPC(13);"[149]DISCARD[146]"
810 FORI=0TO6:PRINTI+1:NEXTI:PRINT:PRINT"YOUR PILE"
820 PRINT"DISTANCE[141]SPEED [141]BATTLE [141]SAFETY "
830 PRINT:PRINT"[129]MY PILE"
840 PRINT"DISTANCE[141]SPEED [141]BATTLE [141]SAFETY "
850 PRINT"[151]";:RETURN
860 C=H(1,N):GOSUB760:GOSUB930:P=1
870 IFCH=0THENPRINT""MS$;:RETURN
880 GOSUB920:J=N+5+6*(1-P):GOSUB2020:PRINTTAB(3)LEFT$(B$,20)
890 PRINT"[145]"TAB(3):C=H(P,N):GOSUB760:PRINTN$:RETURN
900 C=H(P,N):GOSUB760
910 PRINT""TAB(23)N$LEFT$(B$,16-LEN(N$)):PRINT"":RETURN
920 H(P,N)=H(P,S):RETURN
930 P=1:MS$="":ONKGOTO1010,1090,1210,940
940 D=VAL(N$):IFPL(1,0)+D>1000THENMS$="YOU HAVE EXCEEDED 1000"
950 IFPL(1,1)=-4ANDD>50THENMS$="YOU HAVE A "+T$(1,4)
960 IFPL(1,2)<5THENMS$="YOU DON'T HAVE A ROLL CARD"
970 IFPL(1,2)<0THENMS$="YOU HAVE A HAZARD"
980 IFMS$<>""THENCH=0:RETURN
990 PL(1,0)=PL(1,0)+D:CH=1
1000 N$=STR$(PL(1,0)):J=14:GOTO1190
1010 IFL<>4ANDPL(0,2)<5THENMS$="I DON'T HAVE A ROLL CARD"
1020 IFL<>4ANDPL(0,2)<0THENMS$="I ALREADY HAVE A HAZARD"
1030 IFL=4ANDPL(0,1)<0THENMS$="I HAVE A SPEED LIMIT"
1040 IFL=4AND(PL(0,3)AND16)THENMS$="I HAVE "+T$(3,5)
1050 IFPL(0,3)ANDFNA(L)THENMS$="HA!-I HAVE THE SAFETY"
1060 IFMS$<>""THENCH=0:RETURN
1070 IFL<>4THENPL(0,2)=-L:J=22:GOTO1190
1080 CH=1:PL(0,1)=-4:J=21:GOTO1190
1090 IFL<>5THEN1140
1100 IFPL(1,2)=5THENMS$="YOU HAVE A ROLL CARD"
1110 IFPL(1,2)<0THENMS$="YOU HAVE A HAZARD":IFPL(1,2)=-5THENMS$=""
1120 IFMS$<>""THENCH=0:RETURN
1130 PL(1,2)=5:GOTO1180
1140 IFL=4ANDPL(1,1)=-4THENPL(P,1)=4:J=15:GOTO1190
1150 IFPL(1,2)<>-LTHENMS$="YOU DON'T NEED TO DO THAT"
1160 IFMS$<>""THENCH=0:RETURN
1170 PL(P,2)=L
1180 J=16
1190 GOSUB2020:PRINTTAB(9)N$" ":GOSUB6000
1200 CH=1:RETURN
1210 P=1:CF=0:IFPL(1,2)=-LTHENPL(1,2)=L:CF=1
1220 IFL=5ANDPL(1,1)<0THENCF=1
1230 S(5)=S(5)+100:PL(1,3)=PL(1,3)+FNA(L)
1240 IFCFTHENPRINT" COUP FOUREE [151]":S(3)=S(3)+300:GOSUB2030
1250 IFL=5THENPL(P,3)=PL(P,3)+8:PL(P,1)=4:J=21-6*P:GOSUB2020:PRINTTAB(9)T$(2,4)
1260 J=23-6*P:GOSUB2020:PRINTTAB(TB(P))""N$"[151]"
1270 TB(P)=TB(P)+13:IFTB(P)>26ANDTB(P)<49THENTB(P)=49
1280 IFCFANDPL(P,2)=LTHENJ=22-6*P:GOSUB2020:PRINTTAB(9)T$(2,L)" "
1285 IFCFTHENGOSUB6000
1290 CF=0:CH=1:RETURN
1300 CH=0:FORA=STO6:C=H(0,A):GOSUB760
1310 IFK<>1THEN1360
1320 IFL=4ANDPL(1,1)>-1THENCH=1:M=L:N=A
1330 IFL<>4ANDPL(1,2)>0THENCH=2:M=L:N=A
1340 IFFNA(L)ANDPL(1,3)THENCH=0
1350 IFCHTHENA=6
1360 NEXTA:RETURN
1370 CH=0:FORA=STO6:C=H(0,A):GOSUB760:IFK=2ANDL=4THENCH=1:N=A:A=6
1380 NEXTA:RETURN
1390 CH=0:FORA=STO6:C=H(0,A):GOSUB760
1400 IFK=2ANDL=-HZTHENCH=2:M=L:N=A:A=6:GOTO1420
1410 IFK=2ANDL=4ANDPL(0,1)=-4THENCH=1:M=L:N=A
1420 NEXTA:RETURN
1430 SF=0:CF=0:FORA=STO6:C=H(0,A):GOSUB760:IFK<>3THEN1470
1440 IFPL(0,1)<0ANDL=5THENCF=1
1450 SF=SF-8*(L=5)+FNA(L):M=L:N=A:IFL=-HZTHENCF=2
1460 IFCFTHENA=6
1470 NEXTA:RETURN
1480 CH=0:FORA=STO6:C=H(0,A):GOSUB760:IFK=2ANDL=5THENCH=1:N=A:A=6
1490 NEXTA:RETURN
1500 D$="[149]DISCARD[151]":FORA=STO6:C=H(0,A):GOSUB760
1510 IFK=1AND(PL(1,3)ANDFNA(L))THEN1670
1520 IFK=1ANDL=4ANDPL(1,0)>949THEN1670
1530 IFK=2AND(FNA(L)AND(PL(0,3)ORSF))THEN1670
1540 IFK=4ANDVAL(N$)>(1000-PL(0,0))THEN1670
1550 NEXTA
1560 FORA=STO6:C=H(0,A):GOSUB760
1570 IFK=4ANDVAL(N$)ANDVAL(N$)<76THEN1670
1580 NEXTA
1590 FORA=STO6:C=H(0,A):GOSUB760
1600 IFK=1AND(FNA(L)AND(PL(0,3)ORSF)=0)THEN1670
1610 IFK=2ANDL<5AND(PL(1,3)ANDFNA(L)=0)THEN1670
1620 NEXTA
1630 GOSUB1430
1640 IFSFTHENPL(0,3)=PL(0,3)+FNA(M):D$="PLAY[146]":S(4)=S(4)+100:RETURN
1650 N=INT((7-S)*RND(1))+S:IFSTHENRETURN:C=H(0,N):GOSUB760:IFVAL(N$)>100GOTO1650
1660 RETURN
1670 N=A:A=6:NEXTA:RETURN
1680 PRINT" "N$" REACHED 1000 MILES!!...":PRINTB$
1690 INPUT"[145]NEXT ROUND Y[157][157][157]";N$
1700 GOSUB1860:IFG>4ORLEFT$(N$,1)="N"THENPRINT"GAME OVER":GOTO1720
1710 INPUT"OK Y[157][157][157]";N$:GOTO210
1720 INPUT"NEW GAME Y[157][157][157]";N$:IFN$="Y"THENRUN
1730 END
1740 P=0:C=H(0,N):GOSUB760
1750 PRINT"MY "D$"[151][146] IS "N$;:FORI=1TO32-LEN(D$+N$):PRINT" ";:NEXTI
1760 PRINT:P=0
1770 IFLEN(D$)>6THENGOSUB910:GOSUB920:RETURN
1780 IFCFTHENPRINT" COUP FOUREE [151]"
1790 PRINT"":IFK=4THENN$=STR$(PL(0,0)):J=20
1800 CH=0:IFK=3THENJ=23:CH=1
1810 IFK=2THENJ=22:IFL=4THENJ=21
1820 IFK=1THENJ=16:IFL=4THENJ=15
1830 GOSUB2020:PRINTTAB(9);
1840 IFCHTHENGOSUB1250:GOSUB920:RETURN
1850 PRINTN$" ":GOSUB6000:GOSUB920:RETURN
1860 G=G+1:PRINT"[147]SCORES FOR ROUND"G
1870 PRINT:PRINTTAB(17)"[129]ME"TAB(26)"YOU[151]"
1880 PRINT"DISTANCE"TAB(15)PL(0,0)TAB(25)PL(1,0)
1890 S(6)=PL(0,0):S(7)=PL(1,0)
1900 PRINT"COMPLETE TRIP"
1910 IFS(6)=1000THENPRINTTAB(15)"[145] 400":S(6)=S(6)+400
1920 IFS(7)=1000THENPRINTTAB(25)"[145] 400":S(7)=S(7)+400
1930 PRINT"COUPS FOUREES"TAB(15)S(2)TAB(25)S(3)
1940 S(6)=S(6)+S(2):S(7)=S(7)+S(3)
1950 PRINT"SAFETIES"TAB(15)S(4)TAB(25)S(5)
1960 S(6)=S(6)+S(4):S(7)=S(7)+S(5)
1970 PRINT"SHUT OUT":IFPL(1,0)=0THENPRINTTAB(15)"[145] 500":S(6)=S(6)+500
1980 IFPL(0,0)=0THENPRINTTAB(25)"[145] 500":S(7)=S(7)+500
1990 PRINT:PRINT"ROUND"G"TOTAL"TAB(15)S(6)TAB(25)S(7)
2000 S(0)=S(0)+S(6):S(1)=S(1)+S(7)
2010 PRINT:PRINT"GRAND TOTAL"TAB(15)S(0)TAB(25)S(1):RETURN
2020 PRINT"";:FORI=1TOJ:PRINT:NEXTI:RETURN
2030 FORI=0TO800:NEXTI:RETURN
2040 PRINT"[166][157]";:I=FRE(0):PRINT" [157]";:RETURN
5000 POKE56334,PEEK(56334)AND254
5010 POKE1,PEEK(1)AND251
5020 FORA4=0TO1551:POKEA4+14336,PEEK(A4+53248):NEXT
5030 A4=15848
5060 FORA1=0TO66:READA2:FORA2=0TO7:READA3:POKEA4,A3:A4=A4+1:NEXT:NEXT
5070 POKE1,PEEK(1)OR4
5080 POKE56334,PEEK(56334)OR1
5090 POKE53272,(PEEK(53272)AND240)+14
5100 FORX=0TO15:READA6%(X):NEXT
5110 FORX=0TO15:READA7%(X):NEXT
5120 FORI=1TO2:FORJ=1TO5:READCC%(I,J):NEXT:NEXT
5130 FORX=0TO8:READA8%(X):NEXT
5500 RETURN
6000 P2=1:IFJ>18THENP2=0
6005 IFBO(P2)=1THEN6100
6010 BO(P2)=1:B1=(1-P2)*240+555
6020 FORX=0TO15:POKE1024+B1+A6%(X),A7%(X)
6030 POKE55296+B1+A6%(X),0:NEXT
6100 IFK>3THENRETURN
6110 IFL=4THENRETURN
6115 K2=K:IFK=3THENK2=2
6130 B2=189+(K2-1)*9+(L-1)*18
6140 B6=CC%(K2,L)
6150 B1=(1-P2)*240+596:B3=0
6160 FORB4=0TO80STEP40:FORB5=B1+B4TOB1+B4+2
6170 IFL=5THENPOKE1024+B5,A8%(B3):B3=B3+1:GOTO6185
6180 POKE1024+B5,B2
6185 POKE55296+B5,B6
6190 B2=B2+1:NEXT:NEXT
7000 RETURN
63073 DATA174,255,128,128,128,128,128,128,128
63074 DATA175,255,000,000,000,000,000,000,000
63075 DATA176,255,001,121,065,113,065,065,001
63076 DATA177,128,128,128,184,184,140,134,131
63077 DATA178,000,000,000,000,000,000,000,000
63078 DATA179,001,169,001,001,001,001,169,001
63079 DATA180,129,128,128,128,128,128,128,255
63080 DATA181,128,192,096,048,024,012,000,255
63081 DATA182,001,121,065,113,065,121,001,255
63082 DATA183,000,003,001,004,004,000,000,000
63083 DATA184,000,128,192,224,112,120,060,060
63084 DATA185,000,000,000,000,000,000,000,000
63085 DATA186,015,063,113,238,239,232,241,255
63086 DATA187,255,255,255,255,255,255,199,187
63087 DATA188,240,252,254,255,255,255,255,255
63088 DATA189,255,255,255,255,255,255,255,255
63089 DATA190,131,187,187,254,255,255,254,255
63090 DATA191,255,255,015,255,031,239,031,255
63091 DATA192,002,130,132,068,056,000,000,000
63092 DATA193,002,002,068,036,008,201,018,034
63093 DATA194,000,000,009,017,130,090,068,136
63094 DATA195,128,097,030,001,000,000,000,024
63095 DATA196,065,128,000,213,000,000,000,024
63096 DATA197,016,032,064,000,000,000,000,024
63097 DATA198,102,001,000,024,102,001,000,000
63098 DATA199,102,129,000,024,102,129,000,000
63099 DATA200,102,128,000,024,102,128,000,000
63100 DATA201,000,000,000,000,056,068,066,130
63101 DATA202,033,016,008,008,004,004,002,002
63102 DATA203,016,136,004,004,066,034,001,001
63103 DATA204,130,130,132,068,056,000,000,000
63104 DATA205,002,002,004,004,008,008,016,032
63105 DATA206,017,017,001,001,034,066,004,008
63106 DATA207,128,097,030,001,192,024,003,000
63107 DATA208,066,132,000,213,000,000,000,096
63108 DATA209,016,032,064,128,000,192,024,003
63117 DATA219,000,003,012,240,000,000,064,032
63118 DATA220,224,248,230,225,224,224,224,224
63119 DATA221,000,000,000,225,030,000,000,064
63120 DATA222,016,136,064,032,015,020,022,033
63121 DATA223,224,225,224,224,254,229,233,232
63122 DATA224,132,008,016,032,000,000,000,128
63123 DATA225,032,127,154,149,255,096,048,048
63124 DATA226,240,255,235,245,255,224,224,224
63125 DATA227,128,192,032,032,224,192,096,096
63126 DATA228,126,008,016,016,033,000,000,000
63127 DATA229,124,068,137,137,243,000,000,000
63128 DATA230,137,137,082,080,228,000,000,000
63129 DATA231,000,000,003,014,056,224,128,000
63130 DATA232,000,000,128,064,032,016,008,007
63131 DATA233,000,000,000,000,001,003,004,200
63132 DATA234,255,255,255,255,248,248,240,224
63133 DATA235,008,008,156,131,003,001,000,000
63134 DATA236,120,007,000,192,240,206,001,000
63135 DATA237,255,255,255,255,255,255,255,255
63136 DATA238,255,127,063,031,015,007,003,001
63137 DATA239,255,254,252,248,240,224,192,128
63138 DATA240,128,192,224,240,248,252,254,255
63139 DATA241,001,003,007,015,031,063,127,255
63140 DATA242,193,192,192,192,192,192,255,255
63141 DATA243,255,255,192,192,192,192,192,193
63142 DATA244,255,255,003,003,003,003,003,131
63143 DATA245,131,003,003,003,003,003,255,255
63144 DATA246,193,193,193,193,193,193,193,193
63145 DATA247,255,255,000,000,000,000,000,255
63146 DATA248,131,131,131,131,131,131,131,131
63147 DATA249,255,000,000,000,000,000,255,255
63200 DATA0,1,2,3,4,40,44,80,84,120,124,160,161,162,163,164
63210 DATA249,253,253,253,250,252,254,252,254,252,254,248,255,255,255,251
63250 DATA2,2,2,2,2,14,5,5,5,5
63270 DATA103,081,101,103,081,101,103,081,101